<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>hello</title>
</head>
<body>
	<!-- 准备好容器 -->
	<div id="test"></div>

	<!-- 引入react核心库 -->
	<script src="../lib/react.development.js"></script>
	<!-- 引入react-dom，用于支持react操作dom -->
	<script src="../lib/react-dom.development.js"></script>
	<!-- 引入babel，用于将jsx转为js -->
	<script src="../lib/babel.min.js"></script>

	<script type="text/babel">
		
    class Weather extends React.Component{
      // 构造器调用几次？---1次，new了几个实例就调用几次
      constructor(props) {
        super(props);
        // 初始化状态
        this.state = {
          isHot: true
        }
        // 解决this指向问题
        this.test = this.changeWeather.bind(this);
      }
      // render调用几次？---1+n次，n为状态改变的次数
      render() {
        console.log(this);
        // 读取状态
        return <h1 onClick={this.test}>今天天气很{this.state.isHot ? '炎热' : '凉爽'}</h1>
      }
      // changeWeather调用几次？---n次，n为点击标题的次数
      changeWeather() {
        //changeWeather放在哪里? Weather的原型对象上
        //通过Weather实例洲用changeWeather时,changeWeather中的this就是Weather实例
        //由于changeweather是作为onclick的回调，所以不是通过实例调用的，是直接调用
        //类中的方法默认开启了局部的严格模式，所以changeweather中的this为undefined
        console.log('标题被点击了')
        console.log(this.state.isHot)
        this.setState({
          isHot: !this.state.isHot
        })
      }
    }

		// 2.渲染虚拟DOM到页面
		ReactDOM.render(<Weather/>, document.getElementById('test'));
	</script>
</body>
</html>